<!--SIF Implementation Specification 2.2-6 (March 17, 2008)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://www.sifinfo.org/infrastructure/2.x" xmlns:sif="http://www.sifinfo.org/infrastructure/2.x" elementFormDefault="qualified">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="imports/xml/xml.xsd" />
  <xs:complexType name="StudentTransportInfoType">
    <xs:annotation>
      <xs:documentation>
							This object contains transportation information about a student. Students should have at least two
							StudentTransportInfo objects associated with them: one for inbound information (getting to school) and one for
							outbound information (leaving school). If their transportation changes based on the day of the week, then a student
							will have more than two StudentTransportInfo objects.
						</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Eligibility" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Eligibility status of student for district transportation for this trip.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Bus" />
            <xs:enumeration value="Walk" />
            <xs:enumeration value="BusHazard" />
            <xs:enumeration value="BusOutOfAttendance" />
            <xs:enumeration value="ParentPay" />
            <xs:enumeration value="Unknown" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="HomeToSchoolDistance" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Distance between the student’s home address and the school.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="sif:XSDecimalOrEmpty">
              <xs:attribute name="Unit" use="required">
                <xs:annotation>
                  <xs:documentation>Units used in distance reporting.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="km">
                      <xs:annotation>
                        <xs:documentation>Kilometers</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                    <xs:enumeration value="m">
                      <xs:annotation>
                        <xs:documentation>Miles</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="WalkToStopDistance" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Distance between the student’s address and the bus stop where they are picked up or dropped off.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="sif:XSDecimalOrEmpty">
              <xs:attribute name="Unit" use="required">
                <xs:annotation>
                  <xs:documentation>Units used in distance reporting.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="km">
                      <xs:annotation>
                        <xs:documentation>Kilometers</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                    <xs:enumeration value="m">
                      <xs:annotation>
                        <xs:documentation>Miles</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="StopToSchoolDistance" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Distance between the bus stop where a student is picked up or dropped off and the school.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="sif:XSDecimalOrEmpty">
              <xs:attribute name="Unit" use="required">
                <xs:annotation>
                  <xs:documentation>Units used in distance reporting.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="km">
                      <xs:annotation>
                        <xs:documentation>Kilometers</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                    <xs:enumeration value="m">
                      <xs:annotation>
                        <xs:documentation>Miles</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="OriginPoint" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ArrivalTime" minOccurs="0" nillable="true" type="xs:time">
              <xs:annotation>
                <xs:documentation>The time that the bus associated with this route will stop at this bus stop.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="RouteNumber" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>A unique identifier for the route. For instance, you may have route 16AM in the morning and a 16PM in the afternoon.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="RouteDescription" minOccurs="0" nillable="true" type="xs:string">
              <xs:annotation>
                <xs:documentation>Short explanation of the route.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="VehicleNumber" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Vehicle number of the bus.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="BusStopDescription" minOccurs="0" nillable="true" type="xs:string">
              <xs:annotation>
                <xs:documentation>An explanation of this location.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="BusRouteDetailRefId" use="required" type="sif:IdRefType">
            <xs:annotation>
              <xs:documentation>GUID that identifies the bus stop/route where the student gets on the bus.</xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <xs:element name="HomeBusRouteDetail" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:annotation>
            <xs:documentation>GUID referring to a BusRouteDetail object that identifies the origin bus stop for an inbound route or the destination bus stop for an outbound route.</xs:documentation>
          </xs:annotation>
          <xs:simpleContent>
            <xs:extension base="sif:IdRefTypeOrEmpty">
              <xs:attribute name="SIF_RefObject" use="required">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="BusRouteDetail" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="TransferPoints" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="TransferPoint" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="EmbarkBusRouteDetail" minOccurs="0">
                    <xs:complexType>
                      <xs:annotation>
                        <xs:documentation>GUID that identifies the bus stop/route where the student gets on the bus.</xs:documentation>
                      </xs:annotation>
                      <xs:simpleContent>
                        <xs:extension base="sif:IdRefTypeOrEmpty">
                          <xs:attribute name="SIF_RefObject" use="required">
                            <xs:simpleType>
                              <xs:restriction base="xs:token">
                                <xs:enumeration value="BusRouteDetail" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:attribute>
                        </xs:extension>
                      </xs:simpleContent>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="DisembarkBusRouteDetail" minOccurs="0">
                    <xs:complexType>
                      <xs:annotation>
                        <xs:documentation>GUID that identifies the bus stop/route where the student gets off the bus.</xs:documentation>
                      </xs:annotation>
                      <xs:simpleContent>
                        <xs:extension base="sif:IdRefTypeOrEmpty">
                          <xs:attribute name="SIF_RefObject" use="required">
                            <xs:simpleType>
                              <xs:restriction base="xs:token">
                                <xs:enumeration value="BusRouteDetail" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:attribute>
                        </xs:extension>
                      </xs:simpleContent>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SchoolBusRouteDetail" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:annotation>
            <xs:documentation>GUID referring to a BusRouteDetail object that identifies the origin bus stop for an outbound route or the destination bus stop for an inbound route.</xs:documentation>
          </xs:annotation>
          <xs:simpleContent>
            <xs:extension base="sif:IdRefTypeOrEmpty">
              <xs:attribute name="SIF_RefObject" use="required">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="BusRouteDetail" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="DestinationPoint" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ArrivalTime" minOccurs="0" nillable="true" type="xs:time">
              <xs:annotation>
                <xs:documentation>The time that the bus associated with this route will stop at this bus stop.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="RouteNumber" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>A unique identifier for the route. F or instance, you may have route 16AM in the morning and a 16PM in the afternoon.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="RouteDescription" minOccurs="0" nillable="true" type="xs:string">
              <xs:annotation>
                <xs:documentation>Short explanation of the route. It may be used to designate an area, or used to color-code bus routes (the "orange" route).</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="VehicleNumber" minOccurs="0" nillable="true" />
            <xs:element name="BusStopDescription" minOccurs="0" nillable="true" type="xs:string">
              <xs:annotation>
                <xs:documentation>An explanation of this location.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="BusRouteDetailRefId" use="required" type="sif:IdRefType">
            <xs:annotation>
              <xs:documentation>GUID that identifies the bus stop/route where the student gets off the bus.</xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <xs:element name="StateAidQualification" minOccurs="0" nillable="true" type="sif:NCES0720StateTransportationAidQualificationType">
        <xs:annotation>
          <xs:documentation>The qualification status of a student entitling local education agency to receive state transportation aid.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TransportationStatus" minOccurs="0" nillable="true" type="sif:NCES0719TransportationStatusType">
        <xs:annotation>
          <xs:documentation>Information about whether or not a student is transported to and/or from school or receives services, aid, or payment in lieu of transportation.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PublicExpense" minOccurs="0" nillable="true" type="sif:NCES0721TransportationAtPublicExpenseEligibilityType">
        <xs:annotation>
          <xs:documentation>The eligibility of a student for transportation between home and school at local public expense because of distance, disability, or other reasons.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>GUID that identifies this object.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="StudentPersonalRefId" use="required" type="sif:IdRefType">
      <xs:annotation>
        <xs:documentation>GUID that identifies the student that this object refers to.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Type" use="required">
      <xs:annotation>
        <xs:documentation>The direction of transportation that this object refers to.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="Inbound" />
          <xs:enumeration value="Outbound" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="DayOfWeek" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:annotation>
            <xs:documentation>This attribute indicates the day(s) of the week to which this object refers.</xs:documentation>
          </xs:annotation>
          <xs:pattern value="(Mo)?(Tu)?(We)?(Th)?(Fr)?(Sa)?(Su)?" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="SchoolInfoRefId" use="required" type="sif:IdRefType">
      <xs:annotation>
        <xs:documentation>GUID referring to the school that the student attends on these day(s) of the week.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="StudentTransportInfo" type="sif:StudentTransportInfoType" />

</xs:schema>